accountingIntegrationDashboardApp.controller('maintenanceTransactionCtrl', ['$scope', '$http', '$log', 'serverDataService', 'commonValidationService', function ($scope, $http, $log, serverDataService, commonValidationService){ 

    $scope.transactionLevels = [];
    $scope.entityName = 'transaction';
    
    $scope.setChildScope($scope);

    $scope.renderRecordsFromServer();
    
    $scope.loadTransactionLevels = function(){
        return $scope.transactionLevels.length ? null : serverDataService.getEntityList('transaction-level', false).then(function (data){
                    $scope.transactionLevels = data.gridRecords;
                });
    };
    

    //CRUD
    $scope.addTransaction = function() {
        $scope.inserted = {
        id: null,
        transactionLevel: null,
        code: null,
        description: null,
        isVoid: null,
        sign: null,
        externalCode: null
        };
        $scope.gridRecords.push($scope.inserted);
    };
    
    $scope.validateTransactionLevelId = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    };
    
    $scope.validateCode = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    	msg = commonValidationService.checkStringsOnly(columnName, data);
    	if (msg) {return msg;}
    };            
    
    $scope.validateDescription = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    };
    
    $scope.validateVoid = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    	msg = commonValidationService.checkStringsOnly(columnName, data);
    	if (msg) {return msg;}
    };    
    
    $scope.validateSign = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    	msg = commonValidationService.checkStringsOnly(columnName, data);
    	if (msg) {return msg;}
    };
    
    $scope.validateExternalCode = function (columnName, data){
    	$scope.validateCodeMsg = null;
    	msg = commonValidationService.checkNotEmpty(columnName, data);
    	if (msg) {return msg;}
    	msg = commonValidationService.checkStringsOnly(columnName, data);
    	if (msg) {return msg;}
    };    
}]);